package com.xiaoshuidi.cloud.module.contract.mq.message;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 合同账单消息体
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ContractOrderContext {

    //房源类型  无
    //城市 无
    //区域 无
    // 公寓 id
    private Long apartmentId;
    //公寓名称
    //private String apartmentName;
    //房间id
    private Long roomId;
    //房间名称
    private String roomName;
    //租金金额  这个是月租金吗
    private BigDecimal amount;
    //原押金
    private BigDecimal oldDeposit;
    //押金金额
    private BigDecimal deposit;
    //租金押金金额
    private BigDecimal rentDeposit;
    //租金押金水电气等金额
    private BigDecimal rentUtilities;
    //优惠前原租金
    private BigDecimal rawAmount;
    //优惠金额
    private BigDecimal discountAmount;
    //原租金押金水电气等金额
    private BigDecimal initialRentUtilities;
    //已收账单总额
    private BigDecimal paidRentUtilities;
    ////支付状态 0 待支付 | 1 已支付 5 部分支付
    private String payStatus;
    //付款方式(0 alipay 支付宝 |1 dida 滴答付 |2 weixin 微信 |3 cash 现金 |4 bank 银行转账|5 system 系统标记为已支付|6 pos 线下POS |7 h2ome 水滴金融 |8 llian 连连支付 |9,  other 其他 |10 allinpay 银行卡在线支付|11 allinpaywx 微信在线支付|12 allinpayh5 银行卡小额支付 |13 pinganwx 微信支付 |14 daikou 银行代扣|15 ldpay 快捷支付|16 ldalipay 支付宝支付
    private String payMethod;
    //结算状态(0, 未结算|1, 已结算)
    private Integer payOutStatus;
    //审批状态(notReview  无需审核|inReview 审核中|effective 已生效|(reject 已驳回)
    private String approvedStatus;
    //账单类型 default 合同账单| custom 杂费账单| free  免租期账单| meter  抄表账单| carry 结转账单 | owner 业主账单
    private String orderType;
    //账单归属人
    private Long roommateId;
    //租户编号
    private Long tenantId;
    /**
    * 账单id
    * */
    private Long orderId;

    /**
     * 账单创建时间
     * */
    private LocalDateTime createTime;

    /**
     * 账单开始日期
     */
    private LocalDate orderStartTime;

    /**
     * 账单结束日期
     */
    private LocalDate orderEndTime;

    //费用类型 cycle 周期性费用 元/月 |once 一次性费用 元|deposit 押金费用 元 | meter 抄表费用
//    private String feeSort;
//    //费项名称
//    private String feeName;
//    //资金流向 0 流入 | 1 流出
//    private Integer flowType;
//    //已支付金额
//    private BigDecimal paidAmount;
//    //月费用
//    private BigDecimal feeMonth;

    /**
     * 合同id
     */
    private Long contractId;
    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 合同开始日期
     */
    private Date startTime;

    /**
     * 合同结束日期
     */
    private Date endTime;

    /**
     * 合同实际结束日期
     */
    private Date actualEndTime;

    /**
     * 月租金
     */
    private BigDecimal monthRent;

    /**
     * 合同状态
     */
    private String contractStatus;

}
